| |
|
-+ |
53 |
#ifndef IS_LITTLE_ENDIAN |
| |
| |
|
-+ |
55 |
#endif |
| |
| |
|
-+ |
148 |
#elif defined(XP_UNIVERSAL_MAC) |
| |
|
|
149 |
#undef IS_LITTLE_ENDIAN |
| |
|
|
150 |
#undef IS_BIG_ENDIAN |
| |
|
|
151 |
#if defined(__LITTLE_ENDIAN__) |
| |
|
|
152 |
#define IS_LITTLE_ENDIAN 1 |
| |
|
|
153 |
#else |
| |
|
|
154 |
#define IS_BIG_ENDIAN 1 |
| |
|
|
155 |
#endif |
| |
| |
|
-+ |
157 |
#define JS_BYTES_PER_BYTE 1L |
| |
|
|
158 |
#define JS_BYTES_PER_SHORT 2L |
| |
|
|
159 |
#define JS_BYTES_PER_INT 4L |
| |
|
|
160 |
#define JS_BYTES_PER_INT64 8L |
| |
|
|
161 |
#define JS_BYTES_PER_LONG 4L |
| |
|
|
162 |
#define JS_BYTES_PER_FLOAT 4L |
| |
|
|
163 |
#define JS_BYTES_PER_DOUBLE 8L |
| |
|
|
164 |
#define JS_BYTES_PER_WORD 4L |
| |
|
|
165 |
#define JS_BYTES_PER_DWORD 8L |
| |
| |
|
-+ |
167 |
#define JS_BITS_PER_BYTE 8L |
| |
|
|
168 |
#define JS_BITS_PER_SHORT 16L |
| |
|
|
169 |
#define JS_BITS_PER_INT 32L |
| |
|
|
170 |
#define JS_BITS_PER_INT64 64L |
| |
|
|
171 |
#define JS_BITS_PER_LONG 32L |
| |
|
|
172 |
#define JS_BITS_PER_FLOAT 32L |
| |
|
|
173 |
#define JS_BITS_PER_DOUBLE 64L |
| |
|
|
174 |
#define JS_BITS_PER_WORD 32L |
| |
| |
|
-+ |
176 |
#define JS_BITS_PER_BYTE_LOG2 3L |
| |
|
|
177 |
#define JS_BITS_PER_SHORT_LOG2 4L |
| |
|
|
178 |
#define JS_BITS_PER_INT_LOG2 5L |
| |
|
|
179 |
#define JS_BITS_PER_INT64_LOG2 6L |
| |
|
|
180 |
#define JS_BITS_PER_LONG_LOG2 5L |
| |
|
|
181 |
#define JS_BITS_PER_FLOAT_LOG2 5L |
| |
|
|
182 |
#define JS_BITS_PER_DOUBLE_LOG2 6L |
| |
|
|
183 |
#define JS_BITS_PER_WORD_LOG2 5L |
| |
| |
|
-+ |
185 |
#define JS_ALIGN_OF_SHORT 2L |
| |
|
|
186 |
#define JS_ALIGN_OF_INT 4L |
| |
|
|
187 |
#define JS_ALIGN_OF_LONG 4L |
| |
|
|
188 |
#define JS_ALIGN_OF_INT64 4L |
| |
|
|
189 |
#define JS_ALIGN_OF_FLOAT 4L |
| |
|
|
190 |
#define JS_ALIGN_OF_DOUBLE 4L |
| |
|
|
191 |
#define JS_ALIGN_OF_POINTER 4L |
| |
|
|
192 |
#define JS_ALIGN_OF_WORD 4L |
| |
| |
|
-+ |
194 |
#define JS_BYTES_PER_WORD_LOG2 2L |
| |
|
|
195 |
#define JS_BYTES_PER_DWORD_LOG2 3L |
| |
|
|
196 |
#define JS_WORDS_PER_DWORD_LOG2 1L |
| |
|
-+ |
1728 |
#define FEATURE_PROC_MODELING 1 |
| |
| |
|
-+ |
1730 |
#ifdef FEATURE_PROC_MODELING |
| |
| |
|
-+ |
1732 |
JSBool gEnableProceduralModeling = JS_TRUE; |
| |
| |
|
-+ |
1735 |
JSBool js_CheckIfMethodExists (JSContext *cx, JSObject *obj, const char *name) |
| |
|
|
1736 |
{ |
| |
|
|
1737 |
jsval fval; |
| |
| |
|
-+ |
1739 |
#if JS_HAS_XML_SUPPORT |
| |
|
|
1740 |
if (OBJECT_IS_XML(cx, obj)) { |
| |
| |
|
-+ |
1742 |
return JS_FALSE; |
| |
|
|
1743 |
} else |
| |
|
|
1744 |
#endif |
| |
|
|
1745 |
if (!JS_GetProperty(cx, obj, name, &fval)) |
| |
|
|
1746 |
return JS_FALSE; |
| |
| |
|
-+ |
1748 |
return JSVAL_IS_OBJECT (fval); |
| |
|
|
1749 |
} |
| |
| |
|
-+ |
1751 |
#endif |
| |
| |
|
-+ |
2860 |
#if FEATURE_PROC_MODELING |
| |
| |
|
-+ |
2862 |
if (gEnableProceduralModeling) |
| |
|
|
2863 |
{ |
| |
|
|
2864 |
rval = FETCH_OPND(-1); |
| |
|
|
2865 |
lval = FETCH_OPND(-2); |
| |
|
|
2866 |
if ((lval && (cond = JSVAL_IS_OBJECT(lval))) || (rval && JSVAL_IS_OBJECT(rval))) |
| |
|
|
2867 |
{ |
| |
|
|
2868 |
static const char name[] = "Equal"; |
| |
|
|
2869 |
jsval retVal; |
| |
|
|
2870 |
jsval *saveStack = fp->spbase; |
| |
|
|
2871 |
fp->spbase = 0; // will force allocation of new stack |
| |
|
|
2872 |
if (cond) |
| |
|
|
2873 |
{ |
| |
|
|
2874 |
if (js_CheckIfMethodExists (cx, JSVAL_TO_OBJECT(lval), name)) |
| |
|
|
2875 |
ok = JS_CallFunctionName (cx, JSVAL_TO_OBJECT(lval), name, 1 /* argc */, &rval, &retVal); |
| |
|
|
2876 |
else |
| |
|
|
2877 |
ok = JS_FALSE; |
| |
|
|
2878 |
} |
| |
|
|
2879 |
else |
| |
|
|
2880 |
{ |
| |
|
|
2881 |
if (js_CheckIfMethodExists (cx, JSVAL_TO_OBJECT(rval), name)) |
| |
|
|
2882 |
ok = JS_CallFunctionName (cx, JSVAL_TO_OBJECT(rval), name, 1 /* argc */, &lval, &retVal); |
| |
|
|
2883 |
else |
| |
|
|
2884 |
ok = JS_FALSE; |
| |
|
|
2885 |
} |
| |
|
|
2886 |
if (fp->spbase) |
| |
|
|
2887 |
js_FreeRawStack (cx, fp->spbase); |
| |
|
|
2888 |
fp->spbase = saveStack; |
| |
|
|
2889 |
if (ok) |
| |
|
|
2890 |
{ |
| |
|
|
2891 |
sp--; |
| |
|
|
2892 |
STORE_OPND(-1, retVal); |
| |
|
|
2893 |
break; |
| |
|
|
2894 |
} |
| |
| |
|
-+ |
2896 |
} |
| |
|
|
2897 |
} //gEnableProceduralModeling |
| |
| |
|
-+ |
2899 |
#endif |
| |
| |
|
-+ |
2998 |
#if FEATURE_PROC_MODELING |
| |
| |
|
-+ |
3000 |
if (gEnableProceduralModeling) |
| |
|
|
3001 |
{ |
| |
|
|
3002 |
if ((lval && (cond = JSVAL_IS_OBJECT(lval))) || (rval && JSVAL_IS_OBJECT(rval))) |
| |
|
|
3003 |
{ |
| |
|
|
3004 |
static const char name[] = "plus"; |
| |
|
|
3005 |
jsval retVal; |
| |
|
|
3006 |
jsval *saveStack = fp->spbase; |
| |
|
|
3007 |
fp->spbase = 0; // will force allocation of new stack |
| |
|
|
3008 |
if (cond) |
| |
|
|
3009 |
{ |
| |
|
|
3010 |
if (js_CheckIfMethodExists (cx, JSVAL_TO_OBJECT(lval), name)) |
| |
|
|
3011 |
ok = JS_CallFunctionName (cx, JSVAL_TO_OBJECT(lval), name, 1 /* argc */, &rval, &retVal); |
| |
|
|
3012 |
else |
| |
|
|
3013 |
ok = JS_FALSE; |
| |
|
|
3014 |
} |
| |
|
|
3015 |
else |
| |
|
|
3016 |
{ |
| |
|
|
3017 |
if (js_CheckIfMethodExists (cx, JSVAL_TO_OBJECT(rval), name)) |
| |
|
|
3018 |
ok = JS_CallFunctionName (cx, JSVAL_TO_OBJECT(rval), name, 1 /* argc */, &lval, &retVal); |
| |
|
|
3019 |
else |
| |
|
|
3020 |
ok = JS_FALSE; |
| |
|
|
3021 |
} |
| |
|
|
3022 |
if (fp->spbase) |
| |
|
|
3023 |
js_FreeRawStack (cx, fp->spbase); |
| |
|
|
3024 |
fp->spbase = saveStack; |
| |
|
|
3025 |
if (ok) |
| |
|
|
3026 |
{ |
| |
|
|
3027 |
sp--; |
| |
|
|
3028 |
STORE_OPND(-1, retVal); |
| |
|
|
3029 |
break; |
| |
|
|
3030 |
} |
| |
| |
|
-+ |
3032 |
} |
| |
|
|
3033 |
} //gEnableProceduralModeling |
| |
| |
|
-+ |
3035 |
#endif |
| |
| |
|
-+ |
3095 |
#if FEATURE_PROC_MODELING |
| |
| |
|
-+ |
3097 |
if (gEnableProceduralModeling) |
| |
|
|
3098 |
{ |
| |
|
|
3099 |
rval = FETCH_OPND(-1); |
| |
|
|
3100 |
lval = FETCH_OPND(-2); |
| |
|
|
3101 |
if (lval && JSVAL_IS_OBJECT(lval)) |
| |
|
|
3102 |
{ |
| |
| |
|
-+ |
3105 |
static const char name[] = "minus"; |
| |
|
|
3106 |
jsval retVal; |
| |
|
|
3107 |
jsval *saveStack = fp->spbase; |
| |
|
|
3108 |
fp->spbase = 0; // will force allocation of new stack |
| |
|
|
3109 |
if (js_CheckIfMethodExists (cx, JSVAL_TO_OBJECT(lval), name)) |
| |
|
|
3110 |
ok = JS_CallFunctionName (cx, JSVAL_TO_OBJECT(lval), name, 1 /* argc */, &rval, &retVal); |
| |
|
|
3111 |
else |
| |
|
|
3112 |
ok = JS_FALSE; |
| |
|
|
3113 |
if (fp->spbase) |
| |
|
|
3114 |
js_FreeRawStack (cx, fp->spbase); |
| |
|
|
3115 |
fp->spbase = saveStack; |
| |
|
|
3116 |
if (ok) |
| |
|
|
3117 |
{ |
| |
|
|
3118 |
sp--; |
| |
|
|
3119 |
STORE_OPND(-1, retVal); |
| |
|
|
3120 |
break; |
| |
|
|
3121 |
} |
| |
| |
|
-+ |
3123 |
} |
| |
|
|
3124 |
} //gEnableProceduralModeling |
| |
| |
|
-+ |
3126 |
#endif |
| |
| |
|
-+ |
3131 |
#if FEATURE_PROC_MODELING |
| |
| |
|
-+ |
3133 |
if (gEnableProceduralModeling) |
| |
|
|
3134 |
{ |
| |
|
|
3135 |
rval = FETCH_OPND(-1); |
| |
|
|
3136 |
lval = FETCH_OPND(-2); |
| |
|
|
3137 |
if ((lval && (cond = JSVAL_IS_OBJECT(lval))) || (rval && JSVAL_IS_OBJECT(rval))) |
| |
|
|
3138 |
{ |
| |
|
|
3139 |
static const char name[] = "multiply"; |
| |
|
|
3140 |
jsval retVal; |
| |
|
|
3141 |
jsval *saveStack = fp->spbase; |
| |
|
|
3142 |
fp->spbase = 0; // will force allocation of new stack |
| |
|
|
3143 |
if (cond) |
| |
|
|
3144 |
{ |
| |
|
|
3145 |
if (js_CheckIfMethodExists (cx, JSVAL_TO_OBJECT(lval), name)) |
| |
|
|
3146 |
ok = JS_CallFunctionName (cx, JSVAL_TO_OBJECT(lval), name, 1 /* argc */, &rval, &retVal); |
| |
|
|
3147 |
else |
| |
|
|
3148 |
ok = JS_FALSE; |
| |
|
|
3149 |
} |
| |
|
|
3150 |
else |
| |
|
|
3151 |
{ |
| |
|
|
3152 |
if (js_CheckIfMethodExists (cx, JSVAL_TO_OBJECT(rval), name)) |
| |
|
|
3153 |
ok = JS_CallFunctionName (cx, JSVAL_TO_OBJECT(rval), name, 1 /* argc */, &lval, &retVal); |
| |
|
|
3154 |
else |
| |
|
|
3155 |
ok = JS_FALSE; |
| |
|
|
3156 |
} |
| |
|
|
3157 |
if (fp->spbase) |
| |
|
|
3158 |
js_FreeRawStack (cx, fp->spbase); |
| |
|
|
3159 |
fp->spbase = saveStack; |
| |
|
|
3160 |
if (ok) |
| |
|
|
3161 |
{ |
| |
|
|
3162 |
sp--; |
| |
|
|
3163 |
STORE_OPND(-1, retVal); |
| |
|
|
3164 |
break; |
| |
|
|
3165 |
} |
| |
| |
|
-+ |
3167 |
} |
| |
|
|
3168 |
} //gEnableProceduralModeling |
| |
| |
|
-+ |
3170 |
#endif |
| |
| |
|
-+ |
3175 |
#if FEATURE_PROC_MODELING |
| |
| |
|
-+ |
3177 |
if (gEnableProceduralModeling) |
| |
|
|
3178 |
{ |
| |
|
|
3179 |
rval = FETCH_OPND(-1); |
| |
|
|
3180 |
lval = FETCH_OPND(-2); |
| |
|
|
3181 |
if (lval && JSVAL_IS_OBJECT(lval)) |
| |
|
|
3182 |
{ |
| |
| |
|
-+ |
3185 |
static const char name[] = "divide"; |
| |
|
|
3186 |
jsval retVal; |
| |
|
|
3187 |
jsval *saveStack = fp->spbase; |
| |
|
|
3188 |
fp->spbase = 0; // will force allocation of new stack |
| |
|
|
3189 |
if (js_CheckIfMethodExists (cx, JSVAL_TO_OBJECT(lval), name)) |
| |
|
|
3190 |
ok = JS_CallFunctionName (cx, JSVAL_TO_OBJECT(lval), name, 1 /* argc */, &rval, &retVal); |
| |
|
|
3191 |
else |
| |
|
|
3192 |
ok = JS_FALSE; |
| |
|
|
3193 |
if (fp->spbase) |
| |
|
|
3194 |
js_FreeRawStack (cx, fp->spbase); |
| |
|
|
3195 |
fp->spbase = saveStack; |
| |
|
|
3196 |
if (ok) |
| |
|
|
3197 |
{ |
| |
|
|
3198 |
sp--; |
| |
|
|
3199 |
STORE_OPND(-1, retVal); |
| |
|
|
3200 |
break; |
| |
|
|
3201 |
} |
| |
| |
|
-+ |
3203 |
} |
| |
|
|
3204 |
} //gEnableProceduralModeling |
| |
| |
|
-+ |
3206 |
#endif |
| 3387 |
ok = js_DefineProperty(cx, obj, INT_TO_JSID(num + 1), |
<> |
3393 |
// ok = js_DefineProperty(cx, obj, INT_TO_JSID(num + 1), |
| 3388 |
JSVAL_VOID, NULL, NULL, |
|
3394 |
// JSVAL_VOID, NULL, NULL, |
| 3389 |
JSPROP_ENUMERATE, NULL); |
|
3395 |
// JSPROP_ENUMERATE, NULL); |
| |
|
|
3396 |
parstr = JSVAL_TO_STRING(JS_GetEmptyStringValue(cx)); |
| |
| |
|
-+ |
3400 |
} |
| |
| 3402 |
} |
<> |
3410 |
//} |
| |
| 3607 |
sub = REGEXP_PAREN_SUBSTRING(res, slot); |
<> |
3617 |
* sub = REGEXP_PAREN_SUBSTRING(res, slot); |
| |
| |
|
-+ |
3619 |
sub = js_RegExpParenSubString(res, slot); |
| |
| |
|
-+ |
4193 |
JSRegExpStatics * |
| |
|
|
4194 |
js_GetRegExpStatics(JSContext *cx) |
| |
|
|
4195 |
{ |
| |
|
|
4196 |
return &(cx->regExpStatics); |
| |
|
|
4197 |
} |
| |
| |
|
-+ |
4200 |
JSSubString * |
| |
|
|
4201 |
js_RegExpParenSubString(JSRegExpStatics *res, jsuint num) |
| |
|
|
4202 |
{ |
| |
|
|
4203 |
JSSubString *ret = NULL; |
| |
| |
|
-+ |
4205 |
if (num < (jsuint)(res->parenCount)) |
| |
|
|
4206 |
{ |
| |
|
|
4207 |
if (num < 9) |
| |
|
|
4208 |
{ |
| |
|
|
4209 |
ret = &(res->parens[num]); |
| |
|
|
4210 |
} |
| |
|
|
4211 |
else |
| |
|
|
4212 |
{ |
| |
|
|
4213 |
ret = &(res->moreParens[num - 9]); |
| |
|
|
4214 |
} |
| |
|
|
4215 |
} |
| |
|
|
4216 |
else |
| |
|
|
4217 |
{ |
| |
|
|
4218 |
ret = &js_EmptySubString; |
| |
|
|
4219 |
} |
| |
| |
|
-+ |
4221 |
return ret; |
| |
|
|
4222 |
} |